﻿using System;
using System.Windows.Forms;
using PatientManagement.Managers;
using PatientManagement.Common.ObjectModels;

namespace PatientManagement
{
    public partial class FormAddDrug : Form
    {
        public Drug NewDrug { get; set; }

        public FormAddDrug()
        {
            InitializeComponent();
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            decimal alertAmount = 0;
            decimal price = 0;
            decimal amount = 0;

            bool parseAlertAmount = Decimal.TryParse(tbWarningQuantity.Text.Trim(), out alertAmount);
            if (!parseAlertAmount)
            {
                addDrugError.SetError(tbWarningQuantity, "Chỉ có phép nhập số");
                return;
            }
            bool parsePrice = Decimal.TryParse(tbPrice.Text.Trim(), out price);
            if (!parsePrice)
            {
                addDrugError.SetError(tbPrice, "Chỉ có phép nhập số");
                return;
            }
            bool parseAmount = Decimal.TryParse(tbAmount.Text.Trim(), out amount);
            if (!parseAmount)
            {
                addDrugError.SetError(tbAmount, "Chỉ có phép nhập số");
                return;
            }

            if (amount < 0 || price < 0 || alertAmount < 0)
            {
                MessageBox.Show("Chỉ được nhập giá trị lớn hơn 0");
                return;
            }

            var drug = new Drug()
            {
                AlertAmount = alertAmount,
                Price = price,
                Name = tbDrugName.Text.Trim(),
                Effect = tbEffect.Text.Trim(),
                Amount = amount,
                Description = tbUsage.Text.Trim()
            };

            int result = ServiceManager.Instance.AddDrug(drug);
            if (result != -1)
            {
                drug.Id = result;
                NewDrug = drug;
                MessageBox.Show("Thêm thành công!", "Thông báo", MessageBoxButtons.OK);
            }
            else
            {
                MessageBox.Show("Thêm không thành công!", "Thông báo", MessageBoxButtons.OK);
            }

            ResetControls();
        }

        private void ResetControls()
        {
            tbAmount.Text = string.Empty;
            tbDrugName.Text = string.Empty;
            tbEffect.Text = string.Empty;
            tbPrice.Text = string.Empty;
            tbUsage.Text = string.Empty;
            tbWarningQuantity.Text = string.Empty;
            addDrugError.Clear();
        }
    }
}
